home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / jovept2.arc / READ.ME < prev    next >
Text File  |  1985-05-30  |  12KB  |  275 lines

  1.                   JOVE/MS-DOS Installation
  2.  
  3.                      K. Mitchum 4/85
  4.  
  5. INTRODUCTION
  6.  
  7. Jove is an emacs-like editor written in C. Originally developed under
  8. Unix using the termcap interface, the sources have been modified to work
  9. with either termcap or dedicated driver, and under either Unix or
  10. MS-DOS.
  11.  
  12.  
  13. WHAT IS HERE
  14.  
  15. All the sources are here with a few exceptions. The termcap cursor
  16. optimization in "jove-curs.c" has been elliminated, although the
  17. original can be substituted for "curs.c" with a few modifications. Users
  18. familiar with the original Jove sources will note that some
  19. rearrangements and additions have been made: all terminal i/o is
  20. localized to the files "curs.c" and "terms.c" with dedicated driver routines
  21. in a separate file. A driver for the ibm is provided (td.c) although you
  22. may prefer to write your own; a sample dedicated terminal driver for
  23. Unix, "h19.c" is also provided. Chosing between options is mostly a
  24. matter of chosing the proper defines and linking the appropriate driver.
  25.  
  26.  
  27. WHAT ISN'T
  28.  
  29. All code which requires child processes is ifdeffed out if compiled with
  30. "UNIX" defined. Most of this code is simply inappropriate to a single
  31. process o.s., although one might wish to kludge some things, such as
  32. running a shell in a window. Hence, you can't expect Jove under MS-DOS
  33. to run the compiler, or "make" a program as you can under Unix.
  34.  
  35. The tags package has been included, but not tested under MS-DOS. Unlike
  36. emacs, Jove requires a separate tags program to create the tagfile.
  37. There is nothing magic about this code, and it will probably work if you
  38. want to write a tags program.
  39.  
  40.  
  41. WHAT YOU NEED TO RUN JOVE UNDER MS-DOS
  42.  
  43. If you have an IBM PC or PC-compatible machine, with at least 256K of
  44. memory, you can compile the sources directly without modification.
  45. Without modification to the sources, the machine must have software
  46. keyboard routines similar to the ibm, and a display like either the ibm
  47. monochrome or color display.
  48.  
  49. It is relatively easy to adapt the sources to any MS-DOS machine,
  50. however. The low level keyboard routines are in the file "rawio.asm"
  51. which is short and sweet and easily modified. The screen routines are in
  52. the file "td.c" and should be self evident.
  53.  
  54. While a hard disk is not mandatory for running Jove, the frequency of
  55. swapping to the temp file on a floppy will probably drive you insane.
  56. If you are insistent about using Jove on a floppy-only machine, you
  57. should limit the size of the temp file (see "tune.h") and consider
  58. optimizing the swap routines.
  59.  
  60. The only machines that Jove has been tested on so far are: IBM PC,
  61. IBM PC portable, IBM PC XT, Zenith Z-150, Micromint Mpx-16. A driver for
  62. the Texas Instruments may be out soon.
  63.  
  64.  
  65. WHAT YOU NEED TO COMPILE AND LINK JOVE UNDER MS-DOS
  66.  
  67. The sources have been developed using the Computer Innovations C86
  68. compiler, versions 2.10 and 2.20. The "large" memory model is necessary.
  69. If you have 2.20 or later versions of 2.10 there should be no problem.
  70. Some early 2.10 versions have errors in the library, particular a stack
  71. problem with "longjmp()" in the large memory model, and are missing the
  72. function "filedir()" which is necessary. 
  73.  
  74. Some calls specific to the C86 library are used, so if you use a
  75. different compiler, you will need to write some routines to substitute
  76. for these. The most important are:
  77.  
  78.     _fmtout() used in "format.c". This is the formatting call which
  79. handles variable arguments, similar to _doprnt() under Unix. You will
  80. have to search your library sources.
  81.  
  82.     abstoptr() and ptrtoabs() used in the screen driver. You can
  83. probably get around these fairly easily, or write your own driver.
  84.  
  85.     filedir() used in "stat.c". This can be easily written in assembly
  86. language - return a null terminated list of files in the current
  87. directory.
  88.  
  89.     setjmp() and longjmp(). These are not implemented in some versions
  90. of C. Your compiler MUST support these.
  91.  
  92. If you value your sanity, you will get a hold of a hard-disk based
  93. system to compile and link Jove, even if you target machine is a
  94. floppy-based system. Even with the hard disk, it takes about an HOUR to
  95. compiler and link all the files. I have no idea how long this would take
  96. using floppies, and have no intention of finding out.
  97.  
  98.  
  99. FILES PRESENT
  100.  
  101.  
  102.     make/make.c     These are the sources for "make" for MS-DOS, from the
  103.     make/makeutil.c usenet, adapted to compile with C86.
  104.     
  105.     make/makefile   Makefile for "make" for MS-DOS.
  106.     
  107.  
  108.     makefile.ibm    Makefile for MS-DOS version, works with "make", above.
  109.                     Modify for you own system.
  110.     
  111.     makefile.unix   Makefile for Unix system.
  112.     
  113.     joveline        Info for link.
  114.  
  115.     CHANGES.DOC     General info. and bug list.
  116.  
  117.     READ.ME         This file.
  118.     jove.man        Formatted manual entry.
  119.     
  120.     buf.c           buffer and file related commands.
  121.     case.c          case-region and case-word functions.
  122.     cmode.c         routines for c-mode, paren-matching.
  123.     curs.c          cursor placement.
  124.     delete.c        character, word, line deletion.
  125.     disp.c          screen update routines.
  126.     draw.c          message and modeline formatting.
  127.     extend.c        completer and misc. routines.
  128.     format.c        formatting, variable args.
  129.     funcs.c         function defs, etc.
  130.     inc.c           incremental search.
  131.     insert.c        insert, yank routines.
  132.     inter.c         help routines.
  133.     io.c            file routines.
  134.     main.c          main loop.
  135.     marks.c         routines to move the mark.
  136.     meta.c          meta commands.
  137.     misc.c          misc. commands.
  138.     move.c          routines to move the point.
  139.     proc.c          shell commands.
  140.     re.c            search/replace, etc.
  141.     screen.c        screen image routines.
  142.     tag.c           tag routines.
  143.     temp.c          manipulating temp file.
  144.     term.c          basic termcap initialization.
  145.     terms.c         terminal/screen output routines.
  146.     ttout.c         character output routines.
  147.     wind.c          window management routines.
  148.     
  149.     stat.c          MS-DOS kludge for stat() call.
  150.     strncpy.c       MS-DOS slightly mod from std library.
  151.     gcsec.asm       MS-DOS time kludge for sleep().
  152.     rawio.asm       MS-DOS raw character input.
  153.     
  154.     td.c            MS-DOS driver for ibm mono, color, or tecmar
  155.                     graphics master display.
  156.                     
  157.     h19.c           UNIX sample dedicated driver.
  158.  
  159.     files.h         file mode defs.
  160.     funcs.h         misc. function defs.
  161.     jove.h          main include file.
  162.     screen.h        screen image structs and declarations.
  163.     signal.h        for MS-DOS kludges.
  164.     stat.h          for MS-DOS kludges.
  165.     td.h            MS-DOS screen defs.
  166.     tec.h           MS-DOS hardware screen defs.
  167.     temp.h          temp file defs.
  168.     term.h          terminal/screen defs.
  169.     termcap.h       termcap defs.
  170.     tm.h            screen driver struct.
  171.     tune.h          system specifics.
  172.     whoami.h        kludge.
  173.     
  174.     lib/findcom.c       Unix-only. describe command function.
  175.     lib/describe.com    command descriptions for findcom.
  176.     lib/commands.1      Unformatted manual entry.
  177.     lib/jove.1          Unformatted manual entry.
  178.         
  179.  
  180. OPTIONS
  181.  
  182.     UNIX    Unix o.s. If undefined, then MS-DOS assumed.
  183.  
  184.     VAX     Valid if Unix defined only.
  185.  
  186.     TERMCAP If Unix, use termcap driver. Otherwise, assume
  187.             a special driver such as "h19.c" installed.
  188.             Do NOT define this if using MS-DOS.
  189.             
  190.     IBMMONO If using "td.c" driver, specifies IBM monochrome display
  191.             or equivalent hardware.
  192.             
  193.     COLOR   If using "td.c" driver, specifies IBM color display
  194.             or equivalent hardware. NOTE: With the IBM color display
  195.             and the "td" driver, you will experience "flicker" when
  196.             writing to the screen. This will not be true when using a
  197.             Zenith Z-150 or similar machine. You can modify the
  198.             driver to check for scan retrace using the 6845 but
  199.             the driver will be slower.
  200.             
  201.     TECMAR  If using "td.c" driver, specifies TECMAR monochrome display
  202.             in 43-line mode. If you are using the graphics master
  203.             and don't want 43-lines, then specifiy IBMMONO.
  204.             
  205.  
  206. INSTALLATION FOR MS-DOS
  207.  
  208. 1) Copy all the .c and .asm files to an appropriate directory on your
  209. system. Copy the makefile ("makefile.ibm") to the directory and rename
  210. it "makefile". Copy "jovelink" into the current directory. Be sure you
  211. have enough disk space!
  212.  
  213. 2) Create a version of "make" which will work on the makefile.
  214. The necessary files are "make.c" and "makeutil.c".
  215.  
  216. 3) Edit the makefile for jove ("makefile.ibm") for you system
  217. configuration. The key items to check are default search paths for
  218. include files (i.e. "\src\include") and your screen configuration for
  219. IBMMONO, TECMAR, or COLOR (see above). Also edit the paths under
  220. "install" to be appropriate for your system.
  221.  
  222. 4) Edit the file "jovelink" so that the path to your library is correct.
  223. "biglib" is the name I use for the "C86B2S" library. Make certain you
  224. specify the "large" model library.
  225.  
  226. 5) Put the necessary include files for the assembly language files
  227. (model.h, prologue.h, epilogue.h) in the current directory and edit
  228. "model.h" to reflect the large memory model. These include files are
  229. supplied with C86.
  230.  
  231. 6) If you have more than 256K and want Jove to use it, copy "default.c"
  232. from "base.arc" in the C86 sources and change _MAXFMEM to a suitable
  233. value. compile "default.c" and edit "jovelink" to include the .obj
  234. file before the library search. See the C86 manual (p. 3-4) for
  235. information on this.
  236.  
  237. 7) Run "make". The program takes about an hour to compile and link on a
  238. system with a hard disk and "buffers = 10" in the config file. You will
  239. get some WARNINGS from the compiler, particularly about "function to
  240. ptr" conversion. You can ignore these.
  241.  
  242.  
  243. OPERATION
  244.  
  245. Jove under MS-DOS operates about the same as under Unix, with a few
  246. differences. Under MS-DOS, the "temp" file is placed in the current
  247. directory. It is created when Jove is fired up, and goes away when Jove
  248. exits. The temp file is limited to 256K but this can be changed (see
  249. "tune.h"). File names can be entered in upper or lower case - Jove will
  250. give buffers associated with file names an upper case name. However, the
  251. buffer can be referenced in lower case. Files outside the current
  252. directory can be edited, but only by giving the ABSOLUTE path to the
  253. file: i.e. "\src\jove\main.c" will work but "..\main.c" will not.
  254.  
  255. Jove has been run under MS-DOS on four different machines for about 5
  256. months now without significant problems. There are a few bugs which need
  257. to be modified (see the file "changes.doc"). Please let me know of your
  258. experiences, gripes etc.. Try to be constructive and informative - I
  259. didn't write Jove, I only hacked it, and in places you will know more
  260. about the code than I do!
  261.  
  262.  
  263.  
  264.                                      Ken Mitchum (km@cadre.ARPA)
  265.                                      Decision Systems Laboratories
  266.                                      University of Pittsburgh
  267.                                      1360 Scaife Hall
  268.                                      Pittsburgh, Pa. 15261
  269.                                      April 18,1985
  270.  
  271.  
  272.                                      
  273.  
  274.     
  275.